#include <stdio.h>

#define MIN(X,Y) ((X) < (Y) ? (X) : (Y))

typedef struct data_nasc {
  int dia;
  int mes;
  int ano;
} tp_data_nasc;

typedef struct pessoa {
  char nome[30];
  tp_data_nasc data;
  float salario;
} tp_pessoa;

int converte_em_dias(tp_pessoa p) {
  int dias;
  
  dias = p.data.dia + p.data.mes*30 + p.data.ano*365;
  return (dias);
}

void main() {
  int i, j, num_pessoas, ndias1, ndias2;
  tp_pessoa pessoas[5], aux;
	
  printf("Digite o numero de pessoas:\n");
  scanf("%d", &num_pessoas);
  for(i = 0; i < MIN(num_pessoas, 5); i++) { 
	printf("Nome:\n");
	scanf("%s", pessoas[i].nome);
	printf("Dia nascimento:\n");
	scanf("%d", &pessoas[i].data.dia);
	printf("Mes nascimento:\n");
	scanf("%d", &pessoas[i].data.mes);
	printf("Ano nascimento:\n");
	scanf("%d", &pessoas[i].data.ano);
	printf("Salario:\n");
	scanf("%f", &pessoas[i].salario);
  }
  for (i = 0; i < (num_pessoas - 1); i++) {
    for (j = i + 1; j < num_pessoas; j++) {
      ndias1 = converte_em_dias(pessoas[i]);
      ndias2 = converte_em_dias(pessoas[j]);
      if (ndias1 > ndias2) {
	    aux = pessoas[i];
		pessoas[i] = pessoas[j];
		pessoas[j] = aux;
	  }
    }
  }
  for (i = 0; i < num_pessoas; i++) {
  	printf ("%s ", pessoas[i].nome);
	printf ("%d/%d/%d ", pessoas[i].data.dia, pessoas[i].data.mes, pessoas[i].data.ano);
    printf ("%f\n", pessoas[i].salario);
  }
}

